Outil d'Audit de Sécurité des Configurations Systèmes 🛡️🔒
Ce projet propose un outil d’audit de sécurité des configurations systèmes inspiré de Lynis. Il analyse les paramètres de sécurité de systèmes Linux, identifiant les configurations faibles ou vulnérables et fournissant des recommandations pour améliorer la sécurité.
Fonctionnalités du Projet :
- 🔍 Audit de Sécurité : Analyse des configurations système et identification des points faibles en matière de sécurité.
- 📋 Rapport de Sécurité : Génération d'un rapport détaillé sur les résultats de l’audit avec des suggestions d'améliorations.
- 📊 Évaluation des Risques : Affectation d'un score de sécurité basé sur les configurations actuelles du système.
Pré-requis :
- 💻 Système Linux : Ce projet fonctionne principalement sur des systèmes Linux (ex: Ubuntu, CentOS, Debian).
- 🔑 Accès Root : Les droits administratifs sont nécessaires pour réaliser l’audit complet du système.
- 📜 Python 3 : Le script est développé en Python 3 et nécessite certaines bibliothèques standards comme
os
etsubprocess
.
Script Python d'Audit de Sécurité :
import os
import subprocess
# Fonction pour vérifier la présence de configurations vulnérables
def check_service_status(service):
try:
result = subprocess.run(["systemctl", "is-active", service], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
return result.stdout.strip()
except Exception as e:
return f"Erreur lors de la vérification du service {service}: {str(e)}"
# Vérification des services essentiels
def audit_services():
services = ["ssh", "ufw", "apache2", "nginx", "fail2ban"]
report = {}
for service in services:
status = check_service_status(service)
report[service] = status
return report
# Analyse des permissions de fichiers critiques
def check_file_permissions(filepath):
try:
stat_info = os.stat(filepath)
permissions = oct(stat_info.st_mode)[-3:]
return permissions
except FileNotFoundError:
return "Fichier introuvable"
def audit_file_permissions():
files = ["/etc/passwd", "/etc/shadow", "/etc/ssh/sshd_config"]
report = {}
for file in files:
permissions = check_file_permissions(file)
report[file] = permissions
return report
# Analyse des utilisateurs et groupes
def check_user_accounts():
try:
with open("/etc/passwd", "r") as f:
users = [line.split(":")[0] for line in f.readlines()]
return users
except Exception as e:
return f"Erreur lors de l'analyse des utilisateurs: {str(e)}"
# Génération du rapport d'audit
def generate_audit_report():
report = {}
# Audit des services
report['Services'] = audit_services()
# Audit des permissions de fichiers critiques
report['Permissions de Fichiers'] = audit_file_permissions()
# Audit des comptes utilisateurs
report['Comptes Utilisateurs'] = check_user_accounts()
return report
if __name__ == "__main__":
print("Démarrage de l'audit de sécurité des configurations systèmes...")
report = generate_audit_report()
print("\n--- Rapport d'Audit ---")
for section, content in report.items():
print(f"\n{section}:")
for item, result in content.items():
print(f"{item}: {result}")
Instructions d'Utilisation :
🚀 Exécution de l'Audit :
Pour lancer l’audit de votre système Linux, exécutez simplement le script suivant :
python audit_system.py
📋 Rapport Généré :
Le script affichera un rapport complet sur les services critiques, les permissions de fichiers sensibles et la liste des comptes utilisateurs actifs sur le système.
⚠️ Avertissement Éthique :
Ce projet est destiné à auditer les configurations systèmes sur vos propres machines ou celles pour lesquelles vous avez obtenu une autorisation explicite. Il est illégal et contraire à l'éthique de réaliser des audits de sécurité sur des systèmes sans permission. 🛡️🔒